/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.xadrez.ia;

import java.util.LinkedList;

/**
 *
 * @author fabricio
 * Estrutura desenvolvido para busca em profudindade
 * 
 */
public class Arvore<T> {

    private LinkedList<T> list;
    private int profundidade;

    public Arvore() {
        list = null;
        profundidade = -1;
    }

    public Arvore(T t) {
        list = new LinkedList<T>();
        list.add(t);
        profundidade = 0;
    }

    public void deepen(T t) {
        if (list == null) {
            list = new LinkedList<T>();
        }
        list.add(t);
        profundidade++;
    }

    public T backTrack() {
        if ((list != null) && (list.size() > 0)) {
            profundidade--;
            return list.removeLast();
        } else {
            return null;
        }
    }

    public int getProfundidade() {

        return profundidade;
    }
}

